1. Field of the Invention
The present invention generally relates to computer networks, and in particular, to a network and storage input/output (I/O) device.
2. Description of the Related Art
Computer systems connected to networks can be used as storage servers, i.e., their main function is to provide a facility for storing and retrieving data for use by clients connected to the network. The data is typically stored on disk drives and a client request and data travel on the network and enter/leave the storage server via a network controller card. One performance limitation of the storage server is the bandwidth of the communication path between its associated network controller and storage controller.
FIG. 1 depicts a simplified representation of a conventional storage server architecture 100. In many implementations, a network controller 102 and a storage controller 104 are coupled to the same host system bus 106. The operation of this conventional storage server architecture 100 is as follows. A data request made by a client is received by the network controller 102 from a network. The client request is transferred into a main memory 108 of a host computer system 110 and a host processor 112 is then notified of the transfer by an interrupt. The host processor 112 processes the client request in the main memory 108. If the requested operation is a data fetch, the storage controller 104 sets up the DMA (direct memory access) transfer and the appropriate read commands are sent to a storage device. The data is then transferred from the storage device to the main memory 108. When the transfer is completed, the host processor 112 sets up the DMA transfer to the network controller 102 and initiates the transfer. One major performance limitation imposed by this approach is that the requested data traverses the system bus 106, is stored in the main memory 108 and then traverses the system bus 106 again. The bandwidth limitation of the system bus 106 and the main memory 112 restricts the number of network and storage controllers that can be supported by the storage server 100, even though the host processor 112 may have sufficient cycles to support more network and storage controllers.
Previously, there have been proposals which combine a network controller and a storage controller on a single network and storage I/O card, such as disclosed in U.S. Pat. No. 5,974,496 and shown in FIG. 2. In this network and storage I/O card 200, a network controller 202, a storage controller 206, and an optional memory 204 are connected via a single PCI internal bus 208. Some of the disadvantages associated with this network and storage I/O card architecture 200 are (1) only one storage controller 206 and one network controller 202 are utilized and (2) the single PCI internal bus 208 limits the bandwidth between the network controller 202 and the storage controller 206.
Therefore, there is a need to provide an apparatus which addresses such bandwidth limitation problem imposed by the conventional network and storage server systems.
According to one aspect of the invention, a network and storage I/O device is provided for use with a host computer system having a system bus coupled to a host processor and a main memory to provide a high bandwidth network server system. The network and storage I/O device includes a plurality of network controllers to communicate with client computers connected over a network, a plurality of storage controllers to transfer data to and from storage devices, at least one memory element to temporarily store data transferred between the network controllers and the storage controllers and a crossbar switch having a plurality of nodes to interconnect the plurality of network controllers, the plurality of storage controllers and the at least one memory element. The network and storage I/O device also includes a bridge coupled between one of the nodes and the system bus of the host computer.